export interface PostLoginParams {
  account: string; // 用户名
  pwd: string; // 密码
  device_type: string; // 类型
  code?: string | number; // 与验证码相关
  verify?: string | number; // 验证码
}

export type PostLogin = (
  params: PostLoginParams
) => {
  token: string;
  reset_pass: boolean;
};

export type GetUserInfo = () => {
  id: number; // 用户ID
  account: string; // 账号
  name: string; // 用户名
  create_time: string; // 用户创建时间
  last_login_time: string; // 最后登录时间
  role_list: Array<{
    id: number; // 角色id
    role_name: string; // 角色名称
    role_description: string; // 角色描述
  }>;
  reset_pass: boolean; // 是否是初始密码
};


export interface GetLoginUserInfoParams {
  token: string;
  source: "a" | "sta";
}

export interface GetLoginUserInfoReturn {
  id: string | number;
  fullname: string;
  workno: string | number;
  mobile: number;
}

export type GetLoginUserInfo = (params: GetLoginUserInfoParams) => GetLoginUserInfoReturn;

export interface PutAuthUserModpwdParams {
  pwd: string; // 密码
}

export type PutAuthUserModpwd = (params: PutAuthUserModpwdParams) => {};

export type GetVerifyCod = (
  params: {
    code: string | number; // 身份识别码
  }
) => {};

export interface GetDatapowerRolesParams {
  type: "ss" | "sr"; // 角色类型
}

export type GetDatapowerRoles = (params: GetDatapowerRolesParams) => {
  data: Array<{
    gid: number;  // 功能权限ID
    rid: number;  // 角色ID
    roleName: string;  // 角色名称
  }>;
};


export interface GetMenusParams {
  token: string;
  source: "a" | "sta";
  ctrl?: string;
}

export interface GetMenusReturn {
  id: string; // 菜单id
  name: string; // 菜单名称
  sys: string; // 所属系统
  ctrl: string; // 路由一
  action: string; // 路由二
  params: string; // 参数
  parentId: string; // 上级菜单ID
  level: string; // 等级
  icon: string; // 图标
}

// 用户登陆后获取菜单
export type GetMenus = (params: GetMenusParams) => GetMenusReturn[];
